#ifndef NEF_H
#define NEF_H

#include <queue>

//Util functions
void global_index_to_concentration(size_t residual, double *cc_coordinate);

//Prepare the NE, NF result space.
void ne_nf_prepare_space();
void ne_nf_prepare_axis_space();

//Calculation.
void ne_nf_calculate();
void ne_nf_min_max_calculate();
void ne_nf_to_nef();
void filter_ec_from_nef();
void ne_nf_single_calculate();
void ne_nf_single_to_nef();
void filter_ec_single_from_nef();

extern size_t axis_length, ne_nf_length;
extern size_t single_axis_length, single_ne_nf_length;

extern double *axis_c, *single_axis_c;
extern double *NE_NF_results, *single_NE_NF_results;
extern std::deque<int> *ec_index_lists;
extern double **single_ec_lists;

#endif // NEF_H
